1. Technical Field
This invention relates generally to information retrieval in a computer network. More particularly, the invention relates to a generic method and apparatus for managing event data pushed asynchronously to a pervasive computing device, regardless of the type of event generator code used in the device.
2. Description of the Related Art
It is commonplace today for computer users to connect their machines to other computers, known as "servers," throughout a network. The network may be a private network, such as a corporate intranet of networked computers that is accessible only to computer users within that corporation, or it may be a public network, such as the Internet. The Internet is a vast collection of computing resources, interconnected as a network, from sites around the world. The World Wide Web (the "Web") is the Internet's multimedia information retrieval system corresponding to that portion of the Internet that uses the Hypertext Transfer Protocol ("HTTP") as a protocol for exchanging messages. HTTP is an application protocol providing users access to files (e.g., text, graphics, images, sound, video, etc.) using a standard page description language known as Hypertext Markup Language (HTML). HTML provides basic document formatting and allows the developer to specify "links" to other servers and files. In the Internet paradigm, a network path to a server is identified by a so-called Uniform Resource Locator (URL) having a special syntax for defining a network connection. Use of an HTML-compatible browser (e.g., Netscape Navigator or Microsoft Internet Explorer) at a client machine involves specification of a link via the URL. In response, the client makes a request to the server identified in the link and, in return, receives in return a document or other object formatted according to HTML. A collection of documents supported on a Web server is sometimes referred to as a Web site.
A user may connect his computer to a server using a "wireline" connection or a "wireless" connection. Wireline connections are those that use physical media such as cables or telephone lines, whereas wireless connections use media such as satellite links, radio frequency waves, and infrared waves. Many connection techniques can be used with these various media, including: using the computer's modem to establish a connection over a telephone line; using a local area network (LAN) card such as Token Ring or Ethernet; using a cellular modem to establish a wireless connection, and the like. The user's computer may be any type of computer processor having processing and communication capabilities. Traditionally, such devices include desktop, laptop and handheld computers.
Recently, however, the computer industry has sought to add computer processing and communications capabilities to devices other than what would normally be considered a traditional computer. Such devices are quite varied and include, for example, personal digital assistants (PDAs), smartphones, cellular phones, desktop screen phones, in-vehicle devices, business organizers (e.g., IBM WorkPad.TM., PalmPilot.TM., and the like), peripherals (such as printers, fax machines, and the like), handheld or palmtop computing devices, and the like. For convenience, these devices, as a class, are referred to herein as "pervasive computing" clients as they are devices that are designed to be connected to servers in a computer network and used for computing purposes regardless of their location. Typically, a pervasive computing client does not support the full function set of an HTML Windows-based client, such as a desktop or laptop computer. Thus, it is known in the art to provide pervasive computing devices with Web browser functionality according to more limited, yet specialized, markup languages. A representative example is HDML, which is the Handheld Device Markup Language.
A pervasive computing client must have some mechanism for informing the device user asynchronously that some event has occurred. To take a simple example, assume that a pervasive computing client device has a device driver that is responsible for managing power for the device. If the device driver notices a condition, such as a low battery, there must be some mechanism in the device for driving the message to the device display. As another example, assume the pervasive computing client is a smartphone having a paging capability. When a page arrives at the device, there must be some mechanism in place for notifying the user that a page has been received as well as providing a way for the user to dismiss the message.
The problem of notifying a user of an asynchronous event has been solved in the past using some specific application programming interfaces (APIs) and then making specific graphics engine calls to present the information to the user. This approach requires programming to a specific operating system graphics engine. Pervasive computing clients, however, are quite varied and support many different types of event generation code (e.g., Java, native code, device drivers, and the like). Thus, known operating system-specific solutions are not satisfactory.